System and method for displaying information using a compass

ABSTRACT

A system and method displays a compass control with a map or other image. The compass control displays locations that may be displayed on the map, as well as locations that are outside of the map area being displayed, to allow the user to view such locations and interact with them.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 60/660,729, entitled, “Method and Apparatus forDisplaying Information”, filed on Mar. 11, 2005 by Ty Lettau, having thesame assignee as this application, and is hereby incorporated herein byreference in its entirety.

FIELD OF THE INVENTION

The present invention is related to computer software and morespecifically to computer software for the display of information, suchas maps.

BACKGROUND OF THE INVENTION

Many Internet applications allow users to view a map of a geographicarea. A user enters one or more locations, and the application displaysthe one or more locations on a map containing the one or more locations.Buttons around the periphery of the map allow the user to navigate inthe direction of the button, and zoom in or out of the map.

Although maps received over the Internet are helpful, the user interfaceleaves much to be desired. For example, the buttons take up screen spacethat causes the map to have a size that is smaller than the availablesize of the user's computer screen. Second, when the user presses abutton, the page reloads in a discontinuous fashion, for example, bysuddenly displaying a zoomed in or zoomed out version of the map,causing the user to lose his or her orientation. The user is limited tomoving in a direction corresponding to a button (for example,corresponding to North, East, West or South), requiring the user tozigzag around the map to move it into a position the user desires. Theuser is also required to move the map in the increments established bythe author of the application: the user has no control over how far inthe indicated direction the view of the map will move. Finally, when oneor more of the locations the user specified move off the view of themap, the user has no idea where they have gone relative to the view ofthe map or how far away from that view they are.

What is needed is a system and method that can allow a map to bedisplayed at a size that does not require it to be shrunk to accommodatenavigation buttons, that does not cause a page reload when the userpresses a button, that provides a wide range of motion both in terms ofdirection and distance moved, and can indicate where locations not beingdisplayed on the map are relative to the map, and their distance fromthe view of the map.

SUMMARY OF INVENTION

A system and method displays a compass user interface control that canbe used to navigate a map or other surface in which the entire surfacethat can be displayed is not displayed on the screen at once. Thecompass may indicate certain reference points (e.g. ‘N’, ‘S’, ‘E’, ‘W’)corresponding to the directions in which the user may navigate the viewof the surface, but the user is not limited to movement of the view inthat direction. A needle (similar to a compass needle) in the compassresponds to the user's mouseover of the compass, indicating thedirection from the center of the compass to the mouse cursor, and whenthe user clicks the mouse during such a mouseover, the view of the mapmoves in the direction of the compass needle relative to the center ofthe map.

The movement of the view is animated in small increments so that themovement appears to be part of a motion, occurring as long as the usercontinues to hold down the mouse button. The further away from thecenter of the compass the user clicks, the faster the movement occurs.

Zoom in and zoom out buttons are optionally provided on the compasscontrol near the compass, allowing the user to zoom in and out of themap, with the display updated in an animated fashion, as describedbelow.

Certain locations may be designated, for example, by the user, and someor all of the locations are initially displayed on the map. Thelocations are also displayed on the compass, initially in the sameapproximate relative positions to one another, and the same relativeposition to the center of the compass as they have to the center of themap. As the user moves the view of the map or zooms in or out, theposition of the locations are updated on both the map and the compass.Locations displayed at the edge of the current view of the map aredisplayed at the edge of the compass. Locations displayed on the compassare constrained to maintain their centers not farther out than the edgeof the compass, though they remain displayed along the line having thesame angle relative to a vertical line through the center of the compassthat the location has on the map, relative to a vertical line throughthe center of the map. Thus, as locations move off the display of themap, they remain on the edge of the compass. If the user clicks on oneof the locations on the compass, the map is reoriented at its currentzoom level to display the clicked on location in the center of the map.The compass is updated to correspond to the map as described above.

For locations constrained to the edge of the compass, the color, size,or transparency of the icon corresponding to the location displayed onthe compass indicates the distance the location has from the center ofthe map. The further away from the center of the map the correspondinglocation is from the center of the map, the lower the alpha, (i.e. thegreater the transparency) (or size or intensity of color or depth ofcolor) of the location displayed on the compass (with the location notdisplayed on the map in one embodiment). In another embodiment, thelocation may be displayed on the edge of the map in the same manner asit is displayed on the compass as described above.

The system and method initially obtains from a server blocks of the mapdescribed above, starting with the map at the zoom initially displayed,with areas around the initial view of the map being included in the map.The system and method displays only the portion of the map beinginitially displayed but pans the portion of the map viewed according tothe user's compass commands. As the user moves near an edge, thecoordinates of the edge of the map in the trajectory of the user may beprovided to the server and the server responds with another portion ofthe map having an edge at that point. The system and method stitches thenew map to the one being displayed to allow the user continue to changethe view of the map.

The user can zoom in or out using buttons, such as at locations near thecompass or nearby the map, and the system and method zooms in and out ofthe map it retrieved, by enlarging a view in the center of the map tozoom in, or shrinking the view and adding to the display portions of themap at the periphery of the former view. When the map is zoomed in,details such as certain street names (e.g. the names of major streetsare displayed at one zoom level, and major and minor streets aredisplayed at another zoom level, with an optional intermediate stepdisplaying the names of intermediate streets in between) and/or theillustration on the map of the streets themselves, may be added by thesystem and method, such details being retrieved from a server uponreceipt of the zoom in command, or having been received with, or afterthe map is received, and added to the display as a result of the zoom incommand. If the user presses the zoom out button, the formerly displayedmap is shrunk, the areas around the formerly displayed map are displayedwith the same relative zoom, and some of the detail, such as streetnames and illustrations of streets, disappears. As the user continues tozoom out, more and more of the details disappear.

As the user zooms in and out, or moves the map around as describedabove, the locations displayed on the compass are adjusted by the systemand method so that they appear consistently with the map, as describedabove. Although the locations on the compass may be displayed with aconsistent size from one zoom level to the next, the position of thedisplayed locations relative to the center of the compass may change inaccordance with the positions relative to the center of the map, asdescribed above. All movements and zooms are animated, so that the userappears to be “flying” over the map in a helicopter, rather than thepage updates of conventional methods.

The description above related to maps. However, the system and method ofthe present invention can apply to any type of information, such asanother image, and or its navigation, such as the navigation of a humanbody, navigation of information on a network map, etc.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block schematic diagram of a conventional computer system.

FIG. 2 is a flowchart illustrating a method of displaying informationaccording to one embodiment of the present invention.

FIG. 3 is a block schematic diagram illustrating a system for displayinginformation according to one embodiment of the present invention.

FIG. 4 is a diagram illustrating a screen shot of a representative mapand compass display according to one embodiment of the presentinvention.

FIG. 5 is a diagram illustrating a screen shot of the map and compassdisplay of FIG. 4 after the map has been moved by the user according toone embodiment of the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

The present invention may be implemented as computer software on aconventional computer system. For example, the present invention may beimplemented as a Flash Actionscript program for the Flash Player Plug-Into conventional browsers commercially available from Adobe Systems,Inc., of San Jose Calif. Referring now to FIG. 1, a conventionalcomputer system 150 for practicing the present invention is shown.Processor 160 retrieves and executes software instructions stored instorage 162 such as memory, which may be Random Access Memory (RAM) andmay control other components to perform the present invention. Storage162 may be used to store program instructions or data or both. Storage164, such as a computer disk drive or other nonvolatile storage, mayprovide storage of data or program instructions. In one embodiment,storage 164 provides longer term storage of instructions and data, withstorage 162 providing storage for data or instructions that may only berequired for a shorter time than that of storage 164. Input device 166such as a computer keyboard or mouse or both allows user input to thesystem 150. Output 168, such as a display or printer, allows the systemto provide information such as instructions, data or other informationto the user of the system 150. Storage input device 170 such as aconventional floppy disk drive or CD-ROM drive accepts via input 172computer program products 174 such as a conventional floppy disk orCD-ROM or other nonvolatile storage media that may be used to transportcomputer instructions or data to the system 150. Computer programproduct 174 has encoded thereon computer readable program code devices176, such as magnetic charges in the case of a floppy disk or opticalencodings in the case of a CD-ROM which are encoded as programinstructions, data or both to configure the computer system 150 tooperate as described below.

In one embodiment, each computer system 150 is a conventional SUNMICROSYSTEMS ULTRA 10 workstation running the SOLARIS operating systemcommercially available from SUN MICROSYSTEMS, Inc. of Mountain View,Calif., a PENTIUM-compatible personal computer system such as areavailable from DELL COMPUTER CORPORATION of Round Rock, Tex. running aversion of the WINDOWS operating system (such as 95, 98, Me, XP, NT or2000) commercially available from MICROSOFT Corporation of Redmond Wash.or a Macintosh computer system running the MACOS or OPENSTEP operatingsystem commercially available from APPLE COMPUTER CORPORATION ofCupertino, Calif. and the NETSCAPE browser commercially available fromNETSCAPE COMMUNICATIONS CORPORATION of Mountain View, Calif. or INTERNETEXPLORER browser commercially available from MICROSOFT above, althoughother systems may be used.

Receive Request for a Map to be Displayed.

FIG. 2 is a flowchart illustrating a method of displaying informationaccording to one embodiment of the present invention. Referring now toFIG. 2, a user request is received 210 for a map to be displayed. In oneembodiment, the map request is received as one or more locations clickedon a map or one or more locations typed into a text field. A locationmay be a specific address, a landmark, a city name or any other form oflocation. The request may be received via a browser, and via a plug into the browser, such as by the conventional Flash Player Plug in toconventional browsers commercially available from Adobe Systems, Inc.,of San Jose Calif. Any other conventional method of requesting a map maybe received.

Receive Basic GIF of Map.

A the user requested map is requested, e.g. from a server, and a basicGIF of the map is received 212. GIFs are used to communicate mapinformation as described herein, however other embodiments may employother formats, such as a set of vectors and other information, such asis found in conventional graphics programs, such as the conventionalFlash .swf format. To request the map from the server, in oneembodiment, the one or more locations received in step 210 are providedto the server, and the server responds with a square or rectangular mapcontaining the locations specified. In one embodiment, the map will bethe minimum size map that has all of the locations specified, plus athreshold amount of additional area. If a location is a city name, theentire city may be considered to be the location and the map willcontain the entire city, or a portion thereof, such as a downtown.

In one embodiment, the map received from the server consists of one ormore “blocks” of maps, each of which is identified by the mapcoordinates of the upper left-corner of the map block and thelower-right corner of the map block, and the server provides thesecoordinates with each block. The coordinates are used to display eachblock in its proper orientation relative to the other blocks asdescribed in more detail below. Other means of providing a map may alsobe provided.

The basic GIF of any map block is an image of the map block thatcontains the basic details that would be displayed at a threshold zoomlevel. As noted below, additional details may be displayed at other zoomlevels, and such details are provided as described below. Although a GIFis specified, other embodiments may use other forms of images, orgraphics, such as a Flash movie file, PDF or other form of image.

Receive Increasing Detail (i.e. Streets, Names).

Additional map details are received 214. In one embodiment, the morebasic map details are received before higher level map details arereceived, and the map details may be received with an indication of thedetail level to which they correspond. For example, the locations andnames of major streets may be received as level zero details, followedby the locations and names of more minor streets, which are received aslevel one details, and so forth. In one embodiment, map details arereceived associated with the identifying coordinates, described above,for the map block to which they correspond. In one embodiment, theadditional map details are received as a GIF file that, when overlaidover the basic GIF (and the GIFs of lower level details) provides theadditional detail that can be displayed on a map.

Display Map and Locations.

The received map and the appropriate level of received map details aredisplayed 216. To display the map and the map details, the basic GIF ofthe map may be displayed first, followed by more precise details, suchas the location and names of smaller streets, according to the currentzoom level of the map. The zoom level of the map may be changed asdescribed below, and if not changed, a default value may be used.

As noted above, the details arrive in a certain order, and the detailsmay be updated on the map as the details are received, for example byoverlaying each GIF as it is received up to the level of detailsappropriate for the zoom level. In one embodiment, level zero detailsmay be received and displayed before level one details are displayed, orlevel zero details may be received and displayed as level one detailsare being received. In one embodiment, if the requested map encompassesa large area, the amount of detail displayed may be less than the amountof detail displayed for a map which encompasses a smaller area. If therequested map includes two or more distinct locations, the size of thelocations, or the distance between the locations, may determine the sizeand the detail of the initially displayed map. For example, if the scaleof the map is large, some of the more precise details received may notbe displayed.

Display Compass and Locations.

A compass is displayed, and any location or locations requested in step210 are represented with an icon, such as a label or other identifier onthe compass 218. In one embodiment, as described in more detail below,the compass is displayed as a conventional round compass with standarddirectional compass points (e.g. ‘N’, ‘S’, ‘E’, ‘W’) and a needle isoptionally displayed, similar to a compass needle. The compass may bedisplayed in the same window as the map or in a different window. Thecompass may be displayed over the map, such as over a corner of the map.If the compass is displayed in the same window, and over the map, themap may be provided by the server 306 to at least initially not have anyof the locations in the area on the map that is obscured by the compass.In one embodiment, the map window takes up the entire screen display andthe compass is optionally displayed in a separate window that floatsover the map window.

As described in more detail below, icons for certain locations may bedisplayed on the compass or at its edges. The icons may be displayed asletters (“A”, “B”, etc.), with each icon being displayed differentlyfrom the other icons.

In one embodiment, for locations that are included in the current mapdisplay, the icons for the locations are displayed on the compass in thesame distance and direction relative to the center of the compass as thelocations are displayed on the map relative to the center of the map.Icons at the portion of the edge of the displayed area of the mapnearest to the center will be displayed at the edge of the compass, andin another embodiment, icons at the corners of the displayed portion ofthe map are displayed at the edge of the compass. For locations that arefurther from the center of the displayed map than these locations, andfor locations outside of the current map display, the icon correspondingto the location on the compass display may be displayed on the edge ofthe compass, with an indication of the distance of the location from thecenter of the current map display. In one embodiment, the distanceindication may be illustrated by the size or color or transparency ofthe icon corresponding to the requested location. For example, the iconfor a requested location outside of the current map display may diminishin size, or change color, or become more and more transparent as therepresented location (which is not displayed on the map in oneembodiment) moves farther away from the center of the current mapdisplay.

In one embodiment, the map and compass may be displayed in a mannersimilar to that shown in FIG. 4. FIG. 4 is a diagram of a screen shot ofa representative map and compass according to one embodiment of thepresent invention. Referring now to FIG. 4, compass window 430 may bedisplayed alongside map window 420 in the same window in such as way asto be unobtrusive to map window 420, or compass window 430 may bedisplayed in a separate window from map window 420, for example, in awindow that floats on top of the map window 420 in which the map isdisplayed. In one embodiment, compass window 430 includes compass 440,zoom in button 432, zoom out button 434 and one or more icons 438, suchas labels, corresponding to locations that can be displayed on the map.Map window 420 includes the map (not shown) and any icons correspondingto locations. In one embodiment, each icon displayed on the map thatcorresponds to a location is similar or identical to the icon for thatsame location displayed on or adjacent to the compass 440, for example,using the same letter, though of a different size, color, or opacity.

Icon 438, described above, for a location included on the current mapwindow 420 may correspond in direction and distance from the center ofcompass 440 to the direction and distance of the corresponding specifiedlocation 422 from the center of the map being displayed in map window420. Icon 438, described above, for a requested location that is notincluded in the current map displayed in map window 420 may be displayedon the edge 442 of compass 440 in compass window 430 with an indicationof the distance of the represented location from the center of thecurrent map displayed in map window 420, as described above. In oneembodiment, needle 428, which may look like an arrow, points outwardfrom the center of compass 440, like a conventional compass needle.Buttons such as zoom out button 432 and zoom in button 434 may bedisplayed below compass 440 as part of compass widow 430, and in thesame operating system window as the compass.

Receive User Action.

Referring again to FIG. 2, a user action is received 220. In oneembodiment, the user action is received from an operating system inresponse to the user manipulating a mouse or keyboard. User actions mayinclude moving the mouse over the compass or map window, or manipulatinga control or icon on the map or compass window using a conventionalcomputer mouse or keyboard. Such manipulations may include, for example,clicking a zoom out button on the compass window, clicking a zoom inbutton on the compass window or dragging the mouse to move the map.Other manipulations may include clicking on a label on the compass tocenter the map to the corresponding location or mousing over the compassas described in more detail below.

Shrink Details on Map and Remove Detail.

Referring now to FIGS. 2 and 4, if the user action is received as arequest to zoom out on the map 222, for example, if a mouse click isreceived on the zoom out button 434 of the compass display, the areadisplayed on the map display 420 is broadened, and some or all of themore precise details may be removed from the area displayed on the map224 in accordance with the resulting zoom level of the map. In oneembodiment, if the user presses the zoom out button, or otherwiseindicates that a zoom out operation is requested, the formerly displayedmap block or blocks, or portions of a map block or blocks, are shrunk,and areas adjacent to the formerly displayed map block or blocks areadded to the displayed map in the map window with the same new relativezoom. Some of the detail, such as the locations and names of streets,may disappear. As the user continues to zoom out, more and more of thedetail may disappear. As described below, sufficient portion of the maparound the area being displayed may be maintained in memory before it isneeded, to allow the zoom out to occur without the need to wait todownload the portions of the map that would be newly displayed after thezoom out. In one embodiment, as the displayed portion of the receivedmap approaches any edge of the received map (consisting of all of thereceived map blocks, additional map blocks are requested and received asdescribed in more detail below.

In one embodiment, any changes to the display of the map, including, butnot limited to, the zoom out now being described, are animated so thatthe user appears to be “flying” over the map, minimizing thedisorientation of a discontinuous page update, as used in prior artmethods. A page update is thus not used to change the display of the mapor compass windows in one embodiment of the present invention, althoughin other embodiments, a page update is used to so change the display.The method continues at step 248.

It is noted that the user may hold down the zoom out button (or the zoomin button described below), which may be treated as if the user hadrepeatedly clicked such held-down button.

Enlarge Details on Map and Add Detail.

If the user action is click of a zoom in button 432 on the compassdisplay being clicked 222, the portion of the map block or blocksdisplayed in the map window is made smaller, the size of detailsdisplayed on the map window may be increased, and more details may beadded to the map display 226 in accordance with the new current zoomlevel. For example, if the user presses the zoom in button, or otherwiseindicates that a zoom in operation is requested, the center of the mapis enlarged, details such as the locations and names of streets may beenlarged, and additional details, such as the locations and names ofmore minor streets not previously displayed, may be displayed on the mapdisplay. As the user continues to zoom in, more and more precise detailmay be added and such operation may be quickly repeated if the userholds down the mouse button. The method continues at step 254.

Change Position of Map According to Mouse Drag.

If the user action is received as request to move the map 222, forexample by clicking and dragging on a point of the map window, theportion of the map coordinates displayed in the map window is changedaccording to the user request, and the change is animated as describedabove 228. To change the area of the map displayed in the map windowaccording to the request received, the map may be repositionedcorresponding to the user action. For example, a drag right causes themap to be repositioned to the right within the map window, with formerlydisplayed portions near the right edge no longer being displayed, andother portions not formerly displayed to the left of the displayed mapbeing displayed.

FIG. 5 illustrates the screen display of FIG. 4 after the user hasdragged the map down and to the right. Referring now to FIGS. 4 and 5,location 522 (with an icon, or label, of “B”) appears in the map window420, having been up and to the left of the map window 420, and thereforenot displayed in the map window of FIG. 4. The corresponding icon 436 onthe compass 440 has been moved into position 536 to indicate itslocation on the map window 420, and icon 538 has been moved intoposition 538 to indicate its updated location on map window 420. If auser were to drag the map of FIG. 5 back to the position of FIG. 4, themap window 420 and compass window 430 would be altered to appear as theydo in FIG. 4, with the “B” icon moved off the map window 420, and“sticking” to the edge 442 of the compass 440, with an alpha value thatincreases or decreases as the location 522 moves further away from thecenter of the map window 420. It is noted that centers of the map windowand compass window are described herein, though other references pointsnear the center or far away from it may be used in other embodiments ofthe present invention.

Change the Needle of the Compass to Point in the Direction of the Mouse.

Referring again to FIGS. 2 and 4, The method continues at step 248. Ifthe user action is received as a mouseover on the interior portion 440of the compass, or a hovering of the pointer of the mouse over a pointon the compass of the compass 240, the direction of the needle 428 ofthe compass may be adjusted. To adjust the direction of the needle ofthe compass, the point of the needle of the compass may be moved, withthe opposite end of the needle remaining in the center of the compass,so that the needle points in the direction of a line extending from thecenter of the compass 240 to the location of the mouse cursor. Themethod continues at step 220.

Identify the Direction and the Distance from the Center of the Compassto a Second Point on the Compass.

If the user action is received as a mouse click on the compass displayon a point of the compass that does is not on or near the icon of alocation displayed on the compass as described herein 240, then thedirection and the distance of the clicked point from the center of thecompass 440 is identified 244.

It is noted that the direction is not a limited number of discretedirections as in conventional user interface controls. There may be morethan 16 or 32 directions the user may specify by clicking on thecompass. In one embodiment, the number of directions is limited only bythe resolution of the mouse, or by ½, ¼, or ⅛ of such resolution oranother fraction of such resolution. The directions are not limited bythe display of the directions on the compass.

Shift the Display of the Map According to the Identified Direction andDistance.

The map is updated 246 by moving the center of the map being displayedin a direction and by a distance corresponding to the clicked point onthe compass with the portion towards the direction being displayed inthe map window, and other portions in the opposite direction no longerbeing displayed. As described herein, when a map is described as moved,repositioned, recentered, etc., it means the map in the map window isaltered to show a different part of the map (as opposed to the map beingmoved on the display screen) the formerly displayed center of the map ismoved, either to a location that is still displayed on the map display,or to a location off of the map display and therefore no longerdisplayed. The portion opposite the direction of movement is no longerdisplayed. The newly displayed portion and the formerly displayedportion show substantially the same amount of area of the map when themap is moved. Surrounding portions of the map will be received anddisplayed as described below to fill the area of the map display

To update the map to correspond to the point clicked on the compass, thedirection, and the distance from the center of the compass to the pointclicked on the compass, are identified at step 244, and then those twopieces of information are used to determine the new center of theupdated map in the map window. The center of the map being displayed ismoved 246 in the direction of that identified, and the method continuesat step 248. The distance the center is moved is made in proportion tothe distance from the center of the compass the user clicks. If the userclicks a point on a line ⅓ from the center of the compass to its edge,the center of the map will be moved less than if the user clicks a pointon the same line ⅔ from the center of the compass to the edge, thoughthe direction of movement in both cases will be the same. The scale neednot be linear: the movement of the center of the map if the point ⅔ ofthe distance from the center of the compass to the edge may be more thantwice that which would occur if the point ⅓ of the distance from thecenter of the compass to the edge had been clicked. It is again notedthat any changes to the display of the map may be animated as describedabove, though they need not be animated.

If the user holds down the mouse button a the point clicked, the mapwill continue to move in the manner described above. The movement willappear to be faster the farther from the center of the compass at whichthe user is holding down the mouse.

Center Map at Clicked Location.

If the user action is received as a mouse click on a representativelabel or other icon of a specified location on the compass display 240,the map display is re-centered, by manner of animation as describedabove, so that the to the specific location corresponding to therepresentative label or icon that has been clicked on the compassdisplay is centered within the map display. The method continues at step248.

Check Edges.

At step 248, a determination may be made whether any edge of the mapdisplayed is approaching, or has reached or surpassed, any outer edge ofthe portion of the map that have been received. To make a determinationwhether the current map display is approaching, or has reachedsurpassed, one or more edges of the block or blocks that have beenreceived, the distance from the edges of the currently displayed map toone or more edges of the received map or maps may be calculated, and ifone or more of the distances falls below a given threshold, then mapdisplay is determined to be approaching, or reached or surpassed, one ormore edges. For example, if the map display is moved to a point in thenorth-east corner of the northern-most eastern-most received map block,indicating that there is a limited amount of map information farther tothe north, the east and the north-east; or if a request is received todisplay a point to the north-east that is not included in any receivedmap block or blocks; then the map display may be determined to beapproaching, or have reached or surpassed, the north edge, the eastedge, the northeast edge, or all of the above, of the received map blockor blocks.

Receive Basic GIF of Map Near Edge(s).

If the current map display is determined to be approaching, or to havesurpassed, one or more edges of the received map block or blocks 248,the map of the block or blocks near the approached, or surpassed, edgeor edges is requested and the basic GIF is received 250. The basic GIFof the map block or blocks near the approached, or surpassed, edge oredges is received in a manner at least similar to step 212. In oneembodiment, when a new map block is received, the new map block may beincorporated seamlessly as part of the map blocks that have alreadyreceived to form a continuous map image. If some or all of the requestedblock falls within the area of the map being displayed in the mapwindow, step 250 includes displaying such portion or all of therequested block.

Receive Increasing Details of Map, such as Smaller Streets and TheirNames.

More details corresponding to the newly received map block or blocks arereceived 252, for example the location and names of large streets,followed by the location and names of more minor streets, in a manner atleast similar to step 214. In one embodiment, if such details are to bedisplayed because the newly received block or blocks are within the areaof the map being displayed in the map window, the details correspondingto the new map block or blocks in the current map display are displayedas they are received, in a manner similar to step 216, up to the currentzoom level, or level of detail displayed, of the current map display.

For Locations on the Map, Update Locations on Compass.

At step 254, for the specified location or locations that are includedin the current map display, the position of the icon or iconsrepresenting the specified location or locations on the compass areupdated on the compass to reflect the new position of the specifiedlocation or locations on the current map window. The positions may beidentified relative at or near the center of the displayed portion ofthe map and the compass or at another point on the map and compass. Theupdated position of the label or labels representing the specifiedlocation or locations on the compass are displayed in a manner at leastsimilar to step 218 and as described above.

For Locations Off the Map, Update Locations on Compass such thatAlpha=F(Dist).

For the specified location or locations that are no longer beingdisplayed in the map window, the label or labels used to represent thespecified location or locations on the compass display are displayed atthe edge of the compass in the direction from the center of the compasscorresponding to the direction of the specified location from the centerof the current map display 256. Additionally, in one embodiment, as aspecified location that is no longer a part of the current map displaymoves farther and farther away from the center of the current mapdisplay, the label used to represent the specified location on the edgeof the compass display may be displayed on the edge of the compass insuch a way as to indicate that increasing distance, for example bychanging color, becoming smaller and smaller, or becoming more and moretransparent. The method continues at step 220.

FIG. 3 is a block schematic diagram illustrating a system for displayinginformation according to one embodiment of the present invention.

Referring now to FIG. 3, user interface manager 312 receives a requestfor a map to be displayed as described above. In one embodiment, userinterface manager 312 receives the request via user communicationinterface 310, which may be coupled to a conventional keyboard, mouseand monitor via input/output 308. Communication interface 310 includesone or more conventional communication interfaces that have inputscoupled to a conventional mouse, keyboard or other input device, one ormore outputs coupled to a monitor or other display devices. All userinput is received, and user output is provided, via communicationinterface 310.

User interface manager 312 may receive the map request in a variety ofways, such as via a mouse click on a window containing a map or vialocation information, such as one or more addresses, typed into a textfield with a keyboard, as described above. When user interface manager312 receives the request for a map to be displayed, user interfacemanager 312 sends the information in the request (e.g. the addresses) tomap requestor/receiver 320.

In one embodiment, user interface manager 312 may send maprequestor/receiver 320 sets of locations that can be interpreted by aserver to provide one or more map blocks as described above. For exampleif user interface manager 312 receives the map request as one or moretyped addresses, user interface manger 312 may send the typed address oraddresses to map requestor/receiver 320 for forwarding to the server.Other ways of receiving a request for a map may be employed by thepresent invention.

When map requestor/receiver 320 receives the locations or otherinformation in the map request from user interface manager 312, maprequestor/receiver 320 sends a request for the map corresponding to theinformation it receives, to server 306 via network communicationinterface 322, which may be coupled to a network 302 such as theInternet, via input/output 304. Network communication interface 322includes a conventional TCP/IP-compatible Ethernet or other similarcommunication interface running conventional protocols such as Ethernetand TCP/IP or other conventional protocols. All network and serverinput/output is provided and received via network communicationinterface 322.

When server 306 receives the information from map requestor/receiver320, server 306 identifies one or more blocks of a map corresponding tothe information it receives and sends the identified map block or blocksto map requestor/receiver 320 via network communication interface 322.In one embodiment, server 306 sends a basic GIF of the requested mapblock or blocks, followed by more and more details corresponding to themap block or blocks, as described above.

In one embodiment, a map is made up of, or divided into, blocks of maps,and the map blocks are identified by the coordinates of the upper-leftcorner of the map and the lower-right corner of the map, although someof the coordinates may be implied and need not be sent if each block hasa fixed size. Server 306 sends to map requestor/receiver 320 the basicGIF of each block and the increasing level of detail, along with thecoordinates to adjacent blocks of maps to be stitched together, i.e.displayed as if they are continuous by physically orienting themaccording to the coordinates, for example, as described above, to form acontinuous map of a larger area.

When map requestor/receiver 320 receives the basic GIF of the requestedblock or blocks, map requestor/receiver 320 stores the received block orblocks in map storage 318 as described above and signals map displaymanager 326 with the pointer to the basic GIF. The server will followthe basic GIF with blocks containing additional detail, the mapcoordinates of the block of additional detail (which are the same as thebasic GIF to which the detail corresponds) and the detail level to whichthe detail corresponds. As additional detail is received, maprequestor/receiver 320 stores it in map storage 318 associated with thebasic. GIF, each of the basic GIF and the detail, being received as aGIF. In one embodiment, map requestor/receiver 320 stores each receivedmap block (either the basic GIF or the additional detail) associatedwith the set of coordinates corresponding to the block and the detaillevel of the GIF, and map requestor/receiver 320 stores the map blockscorresponding to the increasing details associated with the map block inorder of the level of the detail, as described above. For example, maprequestor/receiver 320 may store the most basic map details, such as thelocations and/or names of major streets, designated as detail level zerodetails; a higher level of detail, such as the locations and/or names ofmore minor streets, as detail level one details; and even higher levelsof detail as subsequent levels. In one embodiment, maprequestor/receiver 320 may receive details corresponding to a map blockor blocks concurrently as map display manager 326 updates the currentmap display, as described herein.

However, as noted above, when map requestor/receiver 320 has stored thebasic GIF of the requested map block or blocks, associated with the mapblock identifier or identifiers in map storage 318, maprequestor/receiver 320 signals map display manager 326 with a pointer tothe start of the basic GIF. Thus, in one embodiment, while theadditional detail is being received, map display manager 326 may displaythe corresponding basic GIF. Additional detail levels may be displayedwhile corresponding other detail levels are being received.

In one embodiment, server 306 will have marked any locations on thebasic GIF, so map display manager 326 need not mark the locations on themap. However, in one embodiment, the coordinates of each location thathad been provided to the server are received. These coordinates mayemploy the same coordinate system as the used by each map block so thatthe position of the locations relative to the displayed portion of themap may be identified as described below. Icons or labels or identifiersused by the server to identify the locations on the map are alsoprovided with the coordinates of the locations for use as describedbelow. Sever 306 provides map requestor/receiver 320 with suchinformation about any locations before or after it provides the basicGIF, and map requestor/receiver 320 stores the information about thelocation or locations it receives in map information storage 316.

When map display manager 326 receives the signal from maprequestor/receiver 320, map display manager 326 displays the map blockor blocks corresponding to the requested map, as described above. Asnoted above, map display manager 326 may stitch together and display anynumber of adjacent blocks of maps to form a display of a continuous mapof an area that covers more than one block.

To display the map, map display manager 326 first displays the basicGIF, then overlays on the existing displayed map image increasing levelsof additional detail until it has provided all such levels appropriatefor the current zoom level. The rendering of an additional layer of anylevel onto the currently displayed level may be performed in a separatearea of memory and then swapped in place of the memory being displayed,or the rendering may be performed to the area of memory the operatingsystem displays.

The zoom level may be specified by the user using user interface manager312 as described in more detail below, and user interface manager storesthe then current zoom level in map information storage 316, and mapdisplay manager 326 retrieves the zoom level from map informationstorage 316 prior to displaying the map. User interface manager 312 maystore a default zoom level at system startup to allow the zoom level tobe used to display the map if the user has not specified one. In oneembodiment, the default zoom level is provided by the server with thebasic GIF or another detail GIF in response to the map request. Theserver identifies the default zoom level that will enable all locationsin the request (or all locations in all requests) to be displayed. Whenmap requestor/receiver 320 receives the zoom level from the server, itstores it into map information storage 316 as the default zoom level.

To display the map, map display manager 326 defines a portal to the mapby specifying the map coordinates of the upper left corner and the lowerright corner of the portion of the map to be displayed. The portalcoordinates define the portion of the map that is to be displayed. Thesize of the portal is selected according to the zoom level as describedabove, and the map corresponding to the portal coordinates is enlargedor shrunk to fill the map window when the map is displayed as describedherein. To display the basic GIF or any GIF corresponding to a level ofdetail, map display manager 326 renders the portion of the map it hasreceived that is within the portal it defined. Map display manager 326stores the portal coordinates in map information storage 316. As notedabove, the portion of the map provided by the server may contain aborder area that map display manager will not initially display. In oneembodiment, the initial portal coordinates are received from the serverby map requestor/receiver 320, which stores it into map informationstorage 316. Map display manager 326 uses the portal coordinateswhenever it displays the map as described herein.

When map display manager 326 has displayed the basic GIF of the mapblock or blocks corresponding to the requested map, map display manager326 displays the details associated with the block or blocks of thedisplayed map up to the level appropriate for the zoom level. Todetermine the level of detail appropriate for the zoom level, mapdisplay manager 326 provides the zoom level it retrieves from mapinformation storage 316 and provides it to map detail identifier 328.When it receives the zoom level, map detail identifier 328 looks up thecorresponding detail level in a table it internally stores that convertsthe zoom level to a detail level, and provides the detail level to mapdisplay manager 326. Some zoom levels may share the same detail level inone embodiment.

When map display manager 326 receives the detail level of detail todisplay from map detail identifier 328, map display manager 326 adds thedetails associated with the displayed block or blocks within the portalcoordinates to the map display up to the detail level received from mapdetail identifier 328, and map display manager 326 displays anyspecified locations on the map display, as described above. To displaythe detail GIFs, map display manager displays the portion of those GIFswithin the portal coordinates in the same manner used to display thebasic GIF. In one embodiment, map display manager 326 adds detailscorresponding to the current map display one level at a time up to thespecified level of detail, as described above. When map display manager326 has displayed the map block or blocks, or portion or portions of themap block or blocks map display manager 326 signals compass displaymanager 340.

When signaled, compass display manager 340 displays the compass control,including the compass, zoom in, and zoom out buttons, and displays therepresentative label or labels for the requested location or locationson the compass as described above. In one embodiment, compass displaymanager 340 displays the compass in a window separate from, andoptionally, floating over, the window used to display the map, or thecompass may be displayed in the same window as the map, either to oneside or above a portion of the map. The window used to display the mapmay be the same window from which the map request is made, and thecompass may be displayed either in a different window or the samewindow. In the embodiment in which a different window is used, if suchwindow does not exist, compass display manager 340 requests it from anoperating system (not shown).

In one embodiment, when signaled, compass display manager 340 signalslocation manager 330, which retrieves the coordinates corresponding tothe one or more locations and their associated identifier or identifiersfrom map information storage 316, and uses the portal coordinates storedin map information storage 316 that describes the portion of the mapbeing displayed to determine the position and alpha of each locationaccording to where the location is displayed (or not displayed) on thedisplay of the map as described above. In one embodiment, locationmanager 330 identifies the position of each location relative to thecenter of the window definition, and then assigns to each location aposition relative to the center of the compass (for example, using 0,0as the center of the compass, with a range of (0, 120) to (0,−120), or(120,0) to (−120,0), for example) that corresponds to the locationrelative to the center of the displayed portion of the map. Locationmanager 330 stores in map information storage 316, associated with eachlocation coordinate and icon or identifier stored in map informationstorage, the position it assigns. As described above, each locationhaving coordinates that are not within the window definition may beassigned a position at the edge of the compass (e.g. (0, 120) and alsoassigned an alpha value, to represent the opacity, color or size atwhich the icon corresponding to the location should be displayed. In oneembodiment, location manager 330 stores the old positions of eachlocation associated with the corresponding location to enable compassdisplay manager 2340 to animate the movement of the location icons fromtheir old positions to their new ones. When location manager 330completes assigning the position and any alpha values to each locationin map information storage 316, location manager 330 signals compassdisplay manager 340.

When signaled, compass display manager 340 displays the compass, and thebuttons used to zoom in or out, on the window it controls as describedabove. Compass display manager 340 displays the icon, identifier orother label for each specified location in map information storage 318on the compass display as described above, using the position and alphainformation assigned as described above.

In one embodiment, location of the icon for a specified location on thecompass corresponds to the position of the specified location as it isdisplayed on the current map display, as described above, and anyspecified locations that are not currently displayed in the map window(i.e. within the coordinates of the portal) are displayed by compassdisplay manager 340 on the outer edge of the compass portion of thecompass display, as described above. The alpha of any such specifiedlocation not included in the current map window is determined by thedistance from the center of the current map display to that specifiedlocation, as described above, and the alpha is displayed as a feature ofthe icon (e.g. label) of the specified location on the compass displayas described above, either by changing the opacity, size, or color ofthe icon according to the alpha value.

In one embodiment, the window in which the compass is displayed may bedesignated by a different handle than the window in which the map isdisplayed, or the window in which the compass is displayed may the samewindow in which the map is displayed. For example, compass displaymanager 340 may display the compass in a corner of the window in whichthe map is displayed, or compass display manager 340 may display thecompass in a separate window from the window in which the map isdisplayed.

At any time, user interface manager 312 may receive a user action viainput/output 308 of user communication interface 310 and an operatingsystem (not shown). In one embodiment, user interface manager 312 mayreceive a user action as a mouseover over one or more windows or as amouse click or drag on one or more windows. When user interface manager312 receives a user action, user interface manager 312 provides theaction and window coordinates of the action to map display manager 326or compass display manager 340. In one embodiment, if the window handleof the action corresponds to the handle of the map display window, userinterface manager 312 provides the action and window coordinates to mapdisplay manager 326; and if the window handle of the action correspondsto the window in which the compass is displayed, user interface managerprovides the action and window coordinates to compass display manager340. In the embodiment in which both the compass and window aredisplayed in the same window, user interface manager 312 provides theaction and window coordinates based on the location of the windowcoordinates within the window: if the window coordinates correspond tothe compass control, user interface manager provides the action andwindow coordinates to compass display manager 340 and if the windowcoordinates correspond to the map, user interface manager provides theaction and window coordinates to map display manager 326.

When map display manager 326 receives the action and window coordinatesof the action from user interface manager 312, map display manager 326identifies the action corresponding to the received action and windowcoordinates. In one embodiment, map display manager 326 may identify amouse drag from a window coordinate corresponding to a displayed mapcoordinate as a request to change the display of the map.

If map display manager 326 identifies the user action as a request tomove the map display, as described above, map display manager 326updates the portal coordinates in map information storage 316 inaccordance with the user action and animates and changes the map displayan animation if movement from the former portal coordinates to the newof portal coordinates in the manner described above.

In one embodiment, if map display manager 326 determines that thecurrent map display is near an edge or edges, or has surpassed an edgeor edges, of the map blocks stored in map storage 318, as describedabove, map display manager 326 may signal map requestor/receiver 320 torequest and receive more map blocks, near that edge or those edges inthe manner described above. Map display manager 326 provides to maprequestor/receiver 320 the coordinates corresponding to the edge of themap block or blocks that should be retrieved as described above and maprequestor/receiver 320 retrieves an additional one or more blocks fromserver 306 via network communication interface 322 by providing thecoordinates to the server 306.

Any time map display manager 326 has changed the display of the map inthe window displaying the map as described above, map display manager326 signals compass display manager 340.

When compass display manager 340 receives the signal from map displaymanager 326, compass display manager retrieves the portal coordinatesfrom map information storage 316, and compass display manager 340updates the icons on the compass display as described above. In oneembodiment, as part of that process compass display manager 340 signalslocation manager 330, which uses the updated portal coordinates todetermine the center of the map being displayed, retrieves thecoordinates of the specified location or locations stored in mapinformation storage 316, updates the positions as described above, andsignals compass display manager 340. Compass display manager 340 updatesthen updates the display of the icons of the locations on the compass asdescribed above, in one embodiment by animating the movement of thelocation icons. For example, location manager 330 may store the oldpositions with the locations in map data storage 316 to enable theanimation to occur from the old positions to the new ones.

In one embodiment, to animate the movement of the compass location iconsconsistently and at the same time as the map is being moved, the processof moving view of the map from the former portal coordinates to thenewly-identified portal coordinates and updating the position of thelocation icons on the compass is performed as described above, but themap and compass are altered a little bit at a time. Map display manager326 internally stores the newly-identified portal coordinates instead ofinitially storing them in map information storage 316, and alters theportal coordinates in map information storage 316 by a small amount inthe direction of the internally stored portal coordinates, redisplaysthe map window, in accordance with the portal coordinates stored in mapinformation storage 316, and signals compass display manager 340 whichupdates the location icons on the compass as described above. Mapdisplay manager 326 then alters the portal coordinates in mapinformation storage 316 by another small amount in the same directionand repeats the process until the portal coordinates stored in mapinformation storage 316 match the internally stored portal coordinatesand the map and compass have been updated.

At any time user interface manager 312 may continue to receive useractions from user communication interface 310, and user interfacemanager 312 may continue to send the action and window coordinates toeither map display manager 326 or compass display manager 340 asdescribed above.

When compass display manager 340 receives an action and the windowcoordinates of the action from user interface manager 312, compassdisplay manager 340 identifies a request corresponding to the receivedaction. In one embodiment, compass display manager 340 identifies amouse click on window coordinate corresponding to a zoom out button as azoom out request, as described above. Compass display manager 340identifies a mouse click on a window coordinate corresponding to a zoomin button as a zoom in request, as described above. Compass displaymanager 340 identifies a mouseover on the compass display as a mouseoverevent, as described above. Compass display manager 340 identifies amouse click on a window coordinate corresponding to a window coordinateat which a location icon or label is not displayed as a request to movethe view of the map, as described above. Compass display manager 340identifies a mouse click on a window coordinate corresponding to awindow coordinate at or near a location icon or label is displayed as arequest to center the map at that location, as described above.

If compass display manager 340 identifies the action as a zoom outrequest, compass display manager 340 retrieves the zoom level from mapinformation storage 316, decrements it (if it is above the minimum zoomout level, and otherwise, does not decrement it), and signals mapdisplay manager 326 to redisplay the map.

Similarly, if compass display manager 340 identifies the action as azoom in request, compass display manager retrieves the zoom level frommap information storage 316, increments it (if it is below the maximumzoom out level, and otherwise, does not increment it), and signals mapdisplay manager 326 to redisplay the map.

In the case of a zoom in request or a zoom out request, the old zoomlevel may be stored separately in map information storage 316 by compassdisplay manager 340 to allow the animation to occur as described herein.

When map display manager 326 receives the signal from compass displaymanager 340, map display manager 326 obtains from map detail identifier328 the detail level corresponding to the current zoom level asdescribed above, shrinks or enlarges the portal coordinates tocorrespond to the new zoom level, and, if the edge of the retrieved mapis within the threshold distance from the displayed part of the map asdefined by the portal coordinates, causes an additional one or moreblocks to be retrieved as described above. Map display manager 326animates the map with the appropriate level of detail from the old zoomlevel to the current zoom level as described above, and signals compassdisplay manager 340, which animates the changes in location from the oldportal coordinates to the new ones. When it animates a zoom in or out,map display manager 326 will maintain the area in which the map isdisplayed, but will enlarge or reduce the map so that the area of themap defined by the portal coordinates fills the area in which the map isdisplayed in map window 420

In such embodiment, map display manager 326 may separately store the oldportal coordinates in map information storage 316 to allow the animationto take place. In another embodiment, map display manager 326 may alterthe portal coordinates in map information storage 316 a little at a timefrom the old portal coordinates to the new ones, animate the map inaccordance with the altered coordinates, signal compass display manager340 to update the position of the location icons on the compass displayin accordance with the portal coordinates in map information storage,and repeat the process until the portal coordinates stored in mapinformation storage 316 correspond to the new zoom level and the map andcompass are updated in accordance with those portal coordinates.

If compass display manager 340 identifies the action as a mouseoverrequest, compass display manager 340 changes the needle display of thecompass display to point in the direction of the coordinates of themouse, as described above.

If compass display manager 340 identifies the action as a mouse click oncoordinates of the window corresponding to a coordinate of the compassthat does not correspond to the map coordinates of a specified location,compass display manager 340 identifies the direction and distance of theclicked window coordinate from the center of the compass display. Whencompass display manager 340 has determined the compass direction andcompass distance of the clicked window coordinate from the center of thecompass display, compass display manager 340 sends the compass directionand compass distance to direction/distance converter 342.

When direction/distance converter 342 receives the compass direction andcompass distance from compass display manager 340, mapdirection/distance converter 342 converts the compass direction andcompass into map coordinates. In one embodiment, direction/distanceconverter 342 retrieves the portal coordinates from map informationstorage 316, and uses the coordinates to calculate new portalcoordinates corresponding to the received compass direction and compassdistance relative to the current map display. When direction/distanceconverter 342 has converted the compass direction and compass distanceinto new portal coordinates, direction/distance converter 342 stores theportal coordinates into map information storage 316 and signals compassdisplay manager 340, which signals map display manager 326, whichredisplays the map in an animated fashion and signals compass displaymanager 340, which updates the locations on the compass control in ananimated fashion as described above. In one embodiment, instead ofaltering the portal coordinates with the coordinates it identifies,direction/distance converter 342 stores the new portal coordinates intoa separate area of map information storage 316 and compass displaymanager 340 signals map display manager 326 to move the map in thedirection of the coordinates in the special area of map informationstorage 316. When signaled, map display manager 326 alters the portalcoordinates in the direction of the coordinates in the special area alittle at a time, updating the map each time and signaling compassdisplay manager 340 each time so that the animation of the map and thecompass occurs in synchronization until the portal coordinates matchthose in the special area of map information storage 316. As the mapdisplay is updated as described herein, map display manager 326 checksthe distance between the edge of the displayed map and the edge of thereceived map, and if it is within the threshold distance, initiates theretrieval of one or more additional blocks as described above.

If compass display manager 340 identifies the user action as a requestto re-center the map at a location, compass display manager 340 uses themouse coordinates to locate the position of the location indicated bythe user and retrieves from map information storage 316 the mapcoordinates of the specified location. Compass display manager 340provides the coordinates to map display manager 326 with an indicationto center the map at that location.

When map display manager 326 receives map coordinates, map displaymanager 326 alters the portal coordinates to cause them to be centeredaround the coordinates it receives, animates the display of the map tocenter the map to the new portal coordinates, and signals compassdisplay manager 340, as described above. The alteration of the portalcoordinates may be performed a little at a time, with map displaymanager 326 updating the map and signaling compass display manager 340to update the locations on the compass each time so that the map andcompass move in synchronization as described above. As it alters thedisplay of the map, map display manager 326 initiates the retrieval ofadditional map blocks if the edge of the displayed map is within thethreshold distance of the edge of the retrieved map as described above.

1. A method of displaying information, comprising: retrieving theinformation from a server over a network responsive to a request;displaying a portion of the information in a first display area of adisplay device; displaying, in a second display area of the displaydevice, a user interface control for controlling the display of theinformation in the first display area; receiving, on the user interfacecontrol, an indication from a user to move the view of the information,the indication including a selection by the user of a point on the userinterface control; identifying a direction and a distance of theselected point from a reference point on the user interface control; andin response to the received indication, changing the view of theinformation to display a different portion of the information in thefirst display area, the view of the information changing in a directioncorresponding to the identified direction and at a speed correspondingto the identified distance.
 2. The method of claim 1, additionallycomprising: displaying in the first display area at least one first iconrepresenting at least one location in the displayed information;displaying, on the user interface control in the second display area, atleast one second icon representing the at least one location, the atleast one second icon being distinct from the at least one first icon,and each second icon corresponding to one of the at least one firsticon; and changing the display of the at least one second icon on theuser interface control in the second display area when changing the viewof the information in the first display area.
 3. The method of claim 2,wherein displaying the at least one second icon comprises: displayingeach second icon at a position on the user interface control relative toa reference point in the second display area, the relative position ofeach second icon corresponding to a position of each corresponding firsticon relative to a reference point in the first display area.
 4. Themethod of claim 3, wherein: the reference point in the first displayarea comprises a point near a center of the first display area; and thereference point in the second area comprises a point near a center ofthe user interface control displayed in the second area.
 5. The methodof claim 1, wherein displaying a user interface control comprisesdisplaying a compass user interface control having a selectable surface.6. The method of claim 1, wherein identifying a direction of theselected point from the reference point on the user interface controlcomprises: identifying one of at least sixteen different availabledirections from a center of the user interface control.
 7. The method ofclaim 1, wherein identifying a direction of the selected point from thereference point on the user interface control comprises: identifying oneof at least thirty-two different available directions from a center ofthe user interface control.
 8. The method of claim 1, wherein thereference point is a center of the user interface control, and whereinchanging the view of the information comprises: increasing the speed atwhich the view of the information changes as the identified distance ofthe selected point from the center of the user interface controlincreases.
 9. The method of claim 1, wherein: retrieving the informationcomprises retrieving a map; displaying a portion of the information in afirst display area comprises displaying a portion of the map in thefirst display area; and changing the view of the information compriseschanging the view of the map to display a different portion of the map,the view of the map changing in a direction corresponding to theidentified direction and at a speed corresponding to the identifieddistance.
 10. The method of claim 9, wherein changing the view of theinformation comprises: determining a distance between an edge of thedisplayed portion of the map and an edge of the retrieved map; comparingthe determined distance to a threshold distance; and when the determineddistance is within the threshold distance, initiating a network requestfor additional portions of the map.
 11. The method of claim 1, whereinchanging the view of the information comprises: initiating requests foradditional information to display in the first display area as the viewof the information in the first display area is changing.
 12. The methodof claim 1, wherein the second display area is included within the firstdisplay area.
 13. A system, comprising: a processor; and storage,coupled to the processor, including executable instructions forperforming operations comprising: retrieving information from a serverover a network responsive to a request, displaying a portion of theinformation in a first display area of a display device, displaying, ina second display area of the display device, a user interface controlfor controlling the display of the information in the first displayarea, receiving, on the user interface control, an indication from auser to move the view of the information, the indication including aselection by the user of a point on the user interface control,identifying a direction and a distance of the selected point from areference point on the user interface control, and in response to thereceived indication, changing the view of the information to display adifferent portion of the information in the first display area, the viewof the information changing in a direction corresponding to theidentified direction and at a speed corresponding to the identifieddistance.
 14. The system of claim 13, wherein the operations comprise:displaying, in the first display area, a first icon representing auser-specified location in the displayed information; displaying, on theuser interface control in the second display area, a second iconrepresenting the user-specified location, the second icon being distinctfrom the first icon; and changing the display of the second icon on theuser interface control in the second display area simultaneously withthe change of the view of the information in the first display area. 15.The system of claim 14, wherein displaying the second icon comprises:displaying the second icon at a position on the user interface controlrelative to a reference point in the second display area, the relativeposition of the second icon corresponding to a position of the firsticon relative to a reference point in the first display area.
 16. Thesystem of claim 15, wherein: the reference point in the first displayarea comprises a point near a center of the first display area; and thereference point in the second area comprises a point near a center ofthe user interface control displayed in the second area.
 17. The systemof claim 13, wherein displaying a user interface control comprisesdisplaying a compass user interface control having a selectable surface.18. The system of claim 13, wherein identifying a direction of theselected point from the reference point on the user interface controlcomprises: identifying one of at least sixteen different availabledirections from a center of the user interface control.
 19. The systemof claim 13, wherein identifying a direction of the selected point fromthe reference point on the user interface control comprises: identifyingone of at least thirty-two different available directions from a centerof the user interface control.
 20. The system of claim 13, wherein thereference point is a center of the user interface control, and whereinchanging the view of the information comprises: increasing the speed atwhich the view of the information changes as the identified distance ofthe selected point from the center of the user interface controlincreases.
 21. The system of claim 13, wherein: retrieving informationcomprises retrieving a map; displaying a portion of the information in afirst display area comprises displaying a portion of the map in thefirst display area; and changing the view of the information compriseschanging the view of the map to display a different portion of the map,the view of the map changing in a direction corresponding to theidentified direction and at a speed corresponding to the identifieddistance.
 22. The system of claim 21, wherein changing the view of theinformation comprises: determining a distance between an edge of thedisplayed portion of the map and an edge of the retrieved map; comparingthe determined distance to a threshold distance; and when the determineddistance is within the threshold distance, initiating a network requestfor additional portions of the map.
 23. The system of claim 13, whereinchanging the view of the information comprises: initiating requests foradditional information to display in the first display area as the viewof the information in the first display area is changing.
 24. The systemof claim 13, wherein the operations comprise: displaying the seconddisplay area within the first display area.
 25. A computer readablemedium storing a computer program, the computer program includinginstructions that, when executed, cause at least one processor toperform operations comprising: retrieving information from a server overa network responsive to a request; displaying a portion of theinformation in a first display area of a display device; displaying, ina second display area of the display device, a user interface controlfor controlling the display of the information in the first displayarea; receiving, on the user interface control, an indication from auser to move the view of the information, the indication including aselection by the user of a point on the user interface control;identifying a direction and a distance of the selected point from areference point on the user interface control; and in response to thereceived indication, changing the view of the information to display adifferent portion of the information in the first display area, the viewof the information changing in a direction corresponding to theidentified direction and at a speed corresponding to the identifieddistance.
 26. The computer readable medium of claim 25, wherein theoperations comprise: displaying, in the first display area, a first iconrepresenting a user-specified location in the displayed information;displaying, on the user interface control in the second display area, asecond icon representing the user-specified location, the second iconbeing distinct from the first icon; and changing the display of thesecond icon on the user interface control in the second display areawhen changing the view of the information in the first display area. 27.The computer readable medium of claim 26, wherein displaying the secondicon comprises: displaying the second icon at a position on the userinterface control relative to a reference point in the second displayarea, the relative position of the second icon corresponding to aposition of the first icon relative to a reference point in the firstdisplay area.
 28. The computer readable medium of claim 27, wherein: thereference point in the first display area comprises a point near acenter of the first display area; and the reference point in the secondarea comprises a point near a center of the user interface controldisplayed in the second area.
 29. The computer readable medium of claim25, wherein displaying a user interface control comprises displaying acompass user interface control having a selectable surface.
 30. Thecomputer readable medium of claim 25, wherein identifying a direction ofthe selected point from the reference point on the user interfacecontrol comprises: identifying one of at least sixteen differentavailable directions from a center of the user interface control. 31.The computer readable medium of claim 25, wherein identifying adirection of the selected point from the reference point on the userinterface control comprises: identifying one of at least thirty-twodifferent available directions from a center of the user interfacecontrol.
 32. The computer readable medium of claim 25, wherein thereference point is a center of the user interface control, and whereinchanging the view of the information comprises: increasing the speed atwhich the view of the information changes as the identified distance ofthe selected point from the center of the user interface controlincreases.
 33. The computer readable medium of claim 25, wherein:retrieving information comprises retrieving a map; displaying a portionof the information in a first display area comprises displaying aportion of the map in the first display area; and changing the view ofthe information comprises changing the view of the map to display adifferent portion of the map, the view of the map changing in adirection corresponding to the identified direction and at a speedcorresponding to the identified distance.
 34. The computer readablemedium of claim 33, wherein changing the view of the informationcomprises: determining a distance between an edge of the displayedportion of the map and an edge of the retrieved map; comparing thedetermined distance to a threshold distance; and when the determineddistance is within the threshold distance, initiating a network requestfor additional portions of the map.
 35. The computer readable medium ofclaim 25, wherein changing the view of the information comprises:initiating requests for additional information to display in the firstdisplay area as the view of the information in the first display area ischanging.
 36. The computer readable medium of claim 25, wherein theoperations comprise: displaying the second display area within the firstdisplay area.